/**
 * @Copyright ®2015 Sinosoft Co. Ltd. All rights reserved.<br/>
 * 项目名称 : 中科软支付平台
 * 创建日期 : 2016年12月22日
 * 修改历史 : 
 *     1. [2016年12月22日]创建文件 by liuyujia
 */
package com.sinosoft.sinopay.web.agentpay.biz.service;

import com.sinosoft.sinocloud.platform.common.exception.biz.IllegalRequestException;
import com.sinosoft.sinocloud.platform.common.exception.checked.RepeatRequestException;
import com.sinosoft.sinopay.web.agentpay.dto.AgentEntryRequsetDTO;
import com.sinosoft.sinopay.web.agentpay.dto.TongPageReturnNotifyDTO;

/**  
 * 【代理网关支付安全服务接口】
 * @author liuyujia
 * @date 2016年12月22日 下午2:27:31 
 * @version V1.0  
 */
public interface AgentSecurityService {

	/**
	 * 根据商户验证签名合法性
	 * @param merchantCode
	 * @param tAgentEntryRequsetDTO
	 * @param signMsg
	 * @throws IllegalRequestException
	 */
	void checkMerchantSignValid(String merchantCode,AgentEntryRequsetDTO tAgentEntryRequsetDTO, String signMsg) throws IllegalRequestException;

	/**
	 * 请求IP合法性
	 * @param tRequestIp
	 * @throws IllegalRequestException
	 */
	void checkRequestIpValid(String tRequestIp) throws IllegalRequestException;
	
	/**
	 * 校验重复请求
	 * @param merchantCode
	 * @param serialNo
	 * @throws RepeatRequestException
	 */
	void  checkRepeatRequest(String merchantCode,String serialNo) throws RepeatRequestException;
	
	/**
	 * 验证订单支付状态
	 * @param payNo
	 * @throws IllegalRequestException
	 */
	void checkPayStatus(String payNo) throws IllegalRequestException;

	/**
	 * 验证签名
	 * @param PayNo
	 * @param PayWay
	 * @param SignMsg
	 * @throws IllegalRequestException
	 */
	void checkPayNoSignValid(String PayNo, String PayWay, String SignMsg) throws IllegalRequestException;
	
	/**
	 * 验证商盟统统付回调信息合法性
	 * @param tongPageReturnNotifyDTO
	 * @throws IllegalRequestException
	 */
	boolean checkReturnInfoVerify(TongPageReturnNotifyDTO tongPageReturnNotifyDTO) throws IllegalRequestException;
	
}
